home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 June: Reference Library / Dev.CD Jun 94.toast / Periodicals / develop / develop Issue 18 / develop 18 code / OSA Sample / Sources / SimpliFace.r < prev    next >
Encoding:
Text File  |  1994-01-28  |  30.8 KB  |  1,558 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        SimpliFace.r
  3.  
  4.     Contains:    Resources for the TSimpliFace class
  5.  
  6.     Developed by:    
  7.         
  8.         Paul G Smith (commstalk hq & Full Moon Software, Inc)
  9.         
  10.         you can leave messages at (UK): 0727 844232; (US): 408 253 7199
  11.         BUT I prefer to be contacted by e-mail
  12.         AppleLink:     SMITH.PG
  13.         Internet:     SMITH.PG@applelink.apple.com
  14.         
  15.         "SimpliFace" Sample code to accompany develop article
  16.         on techniques for embedding scripts in applications.
  17.  
  18. */
  19.  
  20. #include "SysTypes.r"
  21. #include "Types.r"
  22. #include "AppleEvents.r"
  23. #include "AEUserTermTypes.r"
  24. #include "AEObjects.r"
  25. #include "AERegistry.r"
  26. #include "ASRegistry.r"
  27. #include "ApplicationCommon.h"
  28. #include "SimpliFaceCommon.h"
  29.  
  30. #include "SimpliFaceEvents.h"
  31.  
  32. #include "VersionResource.r"
  33.  
  34. INCLUDE "SimpliFace.obj";
  35.  
  36.  
  37. #define kPrefSize                550
  38. #define kMinSize                400
  39.  
  40. /* here is the quintessential MultiFinder friendliness device, the SIZE resource */
  41.  
  42. resource 'SIZE' (-1) {
  43.     dontSaveScreen,
  44.     acceptSuspendResumeEvents,
  45.     enableOptionSwitch,
  46.     canBackground,
  47.     multiFinderAware,    /* this says we do our own activate/deactivate; don't fake us out */
  48.     backgroundAndForeground, /* this is definitely not a background-only application! */
  49.     dontGetFrontClicks,    /* change this if you want "do first click" behavior like the Finder */
  50.     ignoreChildDiedEvents,
  51.     is32BitCompatible,
  52.     isHighLevelEventAware,        
  53.     localAndRemoteHLEvents,        
  54.     reserved, reserved,
  55.     reserved, reserved, reserved,
  56.     kPrefSize * 1024,
  57.     kMinSize * 1024
  58. };
  59.  
  60.  
  61.  
  62. resource kAEScriptingSizeResource (0, "AS sizes", purgeable) {
  63.     dontReadExtensionTerms,
  64.     reserved, reserved, reserved, 
  65.     reserved, reserved, reserved, reserved, 
  66.     reserved, reserved, reserved, reserved, 
  67.     reserved, reserved, reserved, reserved, 
  68.     0,
  69.     0,
  70.     0,
  71.     0,
  72.     0,
  73.     0
  74. };
  75.  
  76.  
  77. /* aete resource for AppleScript */
  78.  
  79. resource typeAETE (0) {
  80.     0x1,
  81.     0x0,
  82.     english,
  83.     roman,
  84.     {    /* array Suites: 0 elements */
  85.         /* [1] */
  86.         "Required suite",
  87.         "",
  88.         kAERequiredSuite,
  89.         1,
  90.         1,
  91.         {    /* array Events: 0 elements */
  92.         },
  93.         {    /* array Classes: 0 elements */
  94.         },
  95.         {    /* array ComparisonOps: 0 elements */
  96.         },
  97.         {    /* array Enumerations: 0 elements */
  98.         },
  99.         /* [2] */
  100.         "SimpliFace suite",
  101.         "terms extracted from Standard suite",
  102.         kSignature,
  103.         1,
  104.         1,
  105.         {    /* array Events: 16 elements */
  106.             /* [1] */
  107.             "close",
  108.             "Close an object",
  109.             kAECoreSuite,
  110.             kAEClose,
  111.             noReply,
  112.             "",
  113.             replyOptional,
  114.             singleItem,
  115.             notEnumerated,
  116.             reserved,
  117.             reserved, reserved, reserved, reserved,
  118.             reserved, reserved, reserved, reserved,
  119.             reserved, reserved, reserved, reserved,
  120.             typeObjectSpecifier,
  121.             "the object to close",
  122.             directParamRequired,
  123.             singleItem,
  124.             notEnumerated,
  125.             changesState,
  126.             reserved, reserved, reserved, reserved,
  127.             reserved, reserved, reserved, reserved,
  128.             reserved, reserved, reserved, reserved,
  129.             {    /* array OtherParams: 2 elements */
  130.                 /* [1] */
  131.                 "saving",
  132.                 keyAESaveOptions,
  133.                 enumSaveOptions,
  134.                 "specifies whether changes should be saved before closing",
  135.                 optional,
  136.                 singleItem,
  137.                 enumerated,
  138.                 reserved,
  139.                 reserved, reserved, reserved, reserved,
  140.                 reserved, reserved, reserved, reserved,
  141.                 reserved, reserved, reserved, reserved,
  142.                 /* [2] */
  143.                 "saving in",
  144.                 keyAEFile,
  145.                 typeAlias,
  146.                 "the file in which to save the object",
  147.                 optional,
  148.                 singleItem,
  149.                 notEnumerated,
  150.                 reserved,
  151.                 reserved, reserved, reserved, reserved,
  152.                 reserved, reserved, reserved, reserved,
  153.                 reserved, reserved, reserved, reserved,
  154.             },
  155.             /* [3] */
  156.             "count",
  157.             "Return the number of elements of a particular class within an object",
  158.             kAECoreSuite,
  159.             kAECountElements,
  160.             typeLongInteger,
  161.             "the number of elements",
  162.             replyRequired,
  163.             singleItem,
  164.             notEnumerated,
  165.             reserved,
  166.             reserved, reserved, reserved, reserved,
  167.             reserved, reserved, reserved, reserved,
  168.             reserved, reserved, reserved, reserved,
  169.             typeObjectSpecifier,
  170.             "the object whose elements are to be counted",
  171.             directParamRequired,
  172.             singleItem,
  173.             notEnumerated,
  174.             doesntChangeState,
  175.             reserved, reserved, reserved, reserved,
  176.             reserved, reserved, reserved, reserved,
  177.             reserved, reserved, reserved, reserved,
  178.             {    /* array OtherParams: 1 elements */
  179.                 /* [1] */
  180.                 "each",
  181.                 keyAEObjectClass,
  182.                 typeType,
  183.                 "the class of the elements to be counted.",
  184.                 required,
  185.                 singleItem,
  186.                 notEnumerated,
  187.                 reserved,
  188.                 reserved, reserved, reserved, reserved,
  189.                 reserved, reserved, reserved, reserved,
  190.                 reserved, reserved, reserved, reserved,
  191.             },
  192.             /* [14] */
  193.             "do script",
  194.             "Execute a script",
  195.             kAEMiscStandards,
  196.             kAEDoScript,
  197.             typeWildCard,
  198.             "the result of the script",
  199.             replyOptional,
  200.             singleItem,
  201.             notEnumerated,
  202.             reserved, reserved, reserved, reserved, reserved, reserved,
  203.             reserved, reserved, reserved, reserved, reserved, reserved, reserved,
  204.             cIntlText,
  205.             "The script to execute",
  206.             directParamRequired,
  207.             singleItem,
  208.             notEnumerated,
  209.             changesState,
  210.             reserved, reserved, reserved, reserved, reserved, reserved,
  211.             reserved, reserved, reserved, reserved, reserved, reserved,
  212.             {    /* array OtherParams: 0 elements */
  213.             },
  214.             /* [4] */
  215.             "make",
  216.             "Make a new element",
  217.             kAECoreSuite,
  218.             kAECreateElement,
  219.             typeObjectSpecifier,
  220.             "to the new object(s)",
  221.             replyRequired,
  222.             singleItem,
  223.             notEnumerated,
  224.             reserved,
  225.             reserved, reserved, reserved, reserved,
  226.             reserved, reserved, reserved, reserved,
  227.             reserved, reserved, reserved, reserved,
  228.             noParams,
  229.             "",
  230.             directParamOptional,
  231.             singleItem,
  232.             notEnumerated,
  233.             changesState,
  234.             reserved, reserved, reserved, reserved,
  235.             reserved, reserved, reserved, reserved,
  236.             reserved, reserved, reserved, reserved,
  237.             {    /* array OtherParams: 4 elements */
  238.                 /* [1] */
  239.                 "new",
  240.                 keyAEObjectClass,
  241.                 typeType,
  242.                 "the class of the new element.",
  243.                 required,
  244.                 singleItem,
  245.                 notEnumerated,
  246.                 reserved,
  247.                 reserved, reserved, reserved, reserved,
  248.                 reserved, reserved, reserved, reserved,
  249.                 reserved, reserved, reserved, reserved,
  250.                 /* [2] */
  251.                 "at",
  252.                 keyAEInsertHere,
  253.                 typeInsertionLoc,
  254.                 "the location at which to insert the element",
  255.                 required,
  256.                 singleItem,
  257.                 notEnumerated,
  258.                 reserved,
  259.                 reserved, reserved, reserved, reserved,
  260.                 reserved, reserved, reserved, reserved,
  261.                 reserved, reserved, reserved, reserved,
  262.                 /* [3] */
  263.                 "with data",
  264.                 keyAEData,
  265.                 typeWildCard,
  266.                 "the initial data for the element",
  267.                 optional,
  268.                 singleItem,
  269.                 notEnumerated,
  270.                 reserved,
  271.                 reserved, reserved, reserved, reserved,
  272.                 reserved, reserved, reserved, reserved,
  273.                 reserved, reserved, reserved, reserved,
  274.                 /* [4] */
  275.                 "with properties",
  276.                 keyAEPropData,
  277.                 typeAERecord,
  278.                 "the initial values for the properties of the element",
  279.                 optional,
  280.                 singleItem,
  281.                 notEnumerated,
  282.                 reserved,
  283.                 reserved, reserved, reserved, reserved, 
  284.                 reserved, reserved, reserved, reserved,
  285.                 reserved, reserved, reserved, reserved
  286.             },
  287.             /* [12] */
  288.             "open",
  289.             "Open the specified object(s)",
  290.             kCoreEventClass,
  291.             kAEOpen,
  292.             noReply,
  293.             "",
  294.             replyOptional,
  295.             singleItem,
  296.             notEnumerated,
  297.             reserved,
  298.             reserved, reserved, reserved, reserved,
  299.             reserved, reserved, reserved, reserved,
  300.             reserved, reserved, reserved, reserved,
  301.             typeObjectSpecifier,
  302.             "list of objects to open",
  303.             directParamRequired,
  304.             singleItem,
  305.             notEnumerated,
  306.             changesState,
  307.             reserved, reserved, reserved, reserved,
  308.             reserved, reserved, reserved, reserved,
  309.             reserved, reserved, reserved, reserved,
  310.             {    /* array OtherParams: 0 elements */
  311.             },
  312.             /* [14] */
  313.             "quit",
  314.             "Quit an application program",
  315.             kCoreEventClass,
  316.             kAEQuitApplication,
  317.             noReply,
  318.             "",
  319.             replyOptional,
  320.             singleItem,
  321.             notEnumerated,
  322.             reserved,
  323.             reserved, reserved, reserved, reserved,
  324.             reserved, reserved, reserved, reserved,
  325.             reserved, reserved, reserved, reserved,
  326.             noParams,
  327.             "",
  328.             directParamOptional,
  329.             singleItem,
  330.             notEnumerated,
  331.             changesState,
  332.             reserved, reserved, reserved, reserved,
  333.             reserved, reserved, reserved, reserved,
  334.             reserved, reserved, reserved, reserved,
  335.             {    /* array OtherParams: 0 elements */
  336.                 /* [1] */
  337.                 "saving",
  338.                 keyAESaveOptions,
  339.                 enumSaveOptions,
  340.                 "specifies whether to save currently open documents",
  341.                 optional,
  342.                 singleItem,
  343.                 enumerated,
  344.                 reserved,
  345.                 reserved, reserved, reserved, reserved,
  346.                 reserved, reserved, reserved, reserved,
  347.                 reserved, reserved, reserved, reserved,
  348.             },
  349.             /* [1] */
  350.             "user event",
  351.             "signifies a user-initiated event",
  352.             kSignature,
  353.             kAESystemEvent,
  354.             noReply,
  355.             "",
  356.             replyOptional,
  357.             singleItem,
  358.             notEnumerated,
  359.             reserved,
  360.             reserved, reserved, reserved, reserved,
  361.             reserved, reserved, reserved, reserved,
  362.             reserved, reserved, reserved, reserved,
  363.             typeObjectSpecifier,
  364.             "the object that is to get first crack at handling the event",
  365.             directParamRequired,
  366.             singleItem,
  367.             notEnumerated,
  368.             changesState,
  369.             reserved, reserved, reserved, reserved,
  370.             reserved, reserved, reserved, reserved,
  371.             reserved, reserved, reserved, reserved,
  372.             {    /* array OtherParams: 2 elements */
  373.                 /* [1] */
  374.                 "kind",
  375.                 keyAEEventKind,
  376.                 enumEventKind,
  377.                 "the kind of event",
  378.                 optional,
  379.                 singleItem,
  380.                 enumerated,
  381.                 reserved,
  382.                 reserved, reserved, reserved, reserved,
  383.                 reserved, reserved, reserved, reserved,
  384.                 reserved, reserved, reserved, reserved,
  385.                 /* [2] */
  386.                 "with data",
  387.                 keyAEData,
  388.                 typeWildCard,
  389.                 "the data accompanying the event (event-specific)",
  390.                 optional,
  391.                 singleItem,
  392.                 notEnumerated,
  393.                 reserved,
  394.                 reserved, reserved, reserved, reserved,
  395.                 reserved, reserved, reserved, reserved,
  396.                 reserved, reserved, reserved, reserved,
  397.             },
  398.         },
  399.         {    /* array Classes: 7 elements */
  400.             /* [1] */
  401.             "application",
  402.             cApplication,
  403.             "An application program",
  404.             {    /* array Properties: 9 elements */
  405.                 /* [1] */
  406.                 "script",
  407.                 pScript,
  408.                 cScript,
  409.                 "the script",
  410.                 reserved,
  411.                 singleItem,
  412.                 notEnumerated,
  413.                 readWrite,
  414.                 reserved, reserved, reserved, reserved,
  415.                 reserved, reserved, reserved, reserved, reserved,
  416.                 notFeminine,
  417.                 notMasculine,
  418.                 singlular,
  419.                 /* [4] */
  420.                 "default type",
  421.                 pDefaultType,
  422.                 cType,
  423.                 "the default descriptor type",
  424.                 reserved,
  425.                 singleItem,
  426.                 notEnumerated,
  427.                 readOnly,
  428.                 reserved, reserved, reserved, reserved,
  429.                 reserved, reserved, reserved, reserved,
  430.                 reserved,
  431.                 reserved,
  432.                 reserved,
  433.                 singlular,
  434.                 /* [5] */
  435.                 "frontmost",
  436.                 pIsFrontProcess,
  437.                 cBoolean,
  438.                 "Is this the frontmost application?",
  439.                 reserved,
  440.                 singleItem,
  441.                 notEnumerated,
  442.                 readOnly,
  443.                 reserved, reserved, reserved, reserved,
  444.                 reserved, reserved, reserved, reserved,
  445.                 reserved,
  446.                 reserved,
  447.                 reserved,
  448.                 singlular,
  449.                 /* [6] */
  450.                 "name",
  451.                 pName,
  452.                 cIntlText,
  453.                 "the name",
  454.                 reserved,
  455.                 singleItem,
  456.                 notEnumerated,
  457.                 readOnly,
  458.                 reserved, reserved, reserved, reserved,
  459.                 reserved, reserved, reserved, reserved,
  460.                 reserved,
  461.                 reserved,
  462.                 reserved,
  463.                 singlular,
  464.                 /* [8] */
  465.                 "version",
  466.                 pVersion,
  467.                 cVersion,
  468.                 "the version of the application",
  469.                 reserved,
  470.                 singleItem,
  471.                 notEnumerated,
  472.                 readOnly,
  473.                 reserved, reserved, reserved, reserved,
  474.                 reserved, reserved, reserved, reserved,
  475.                 reserved,
  476.                 reserved,
  477.                 reserved,
  478.                 singlular,
  479.             },
  480.             {    /* array Elements: 1 elements */
  481.                 /* [1] */
  482.                 cWindow,
  483.                 {    /* array KeyForms: 2 elements */
  484.                     /* [1] */
  485.                     formAbsolutePosition,
  486.                     /* [2] */
  487.                     formName
  488.                 },
  489.             },
  490.             "applications",
  491.             cApplication,
  492.             "Every application",
  493.             {    /* array Properties: 1 elements */
  494.                 /* [1] */
  495.                 "",
  496.                 kAESpecialClassProperties,
  497.                 cType,
  498.                 "",
  499.                 reserved,
  500.                 singleItem,
  501.                 notEnumerated,
  502.                 readOnly,
  503.                 reserved, reserved, reserved, reserved,
  504.                 reserved, reserved, reserved, reserved,
  505.                 reserved,
  506.                 reserved,
  507.                 reserved,
  508.                 plural
  509.             },
  510.             {    /* array Elements: 0 elements */
  511.             },
  512.             /* [7] */
  513.             "window",
  514.             cWindow,
  515.             "A window",
  516.             {    /* array Properties: 15 elements */
  517.                 /* [1] */
  518.                 "script",
  519.                 pScript,
  520.                 cScript,
  521.                 "the script",
  522.                 reserved,
  523.                 singleItem,
  524.                 notEnumerated,
  525.                 readWrite,
  526.                 reserved, reserved, reserved, reserved,
  527.                 reserved, reserved, reserved, reserved, reserved,
  528.                 notFeminine,
  529.                 notMasculine,
  530.                 singlular,
  531.                 /* [1] */
  532.                 "best type",
  533.                 pBestType,
  534.                 cType,
  535.                 "the best descriptor type",
  536.                 reserved,
  537.                 singleItem,
  538.                 notEnumerated,
  539.                 readOnly,
  540.                 reserved, reserved, reserved, reserved,
  541.                 reserved, reserved, reserved, reserved,
  542.                 reserved,
  543.                 reserved,
  544.                 reserved,
  545.                 singlular,
  546.                 /* [2] */
  547.                 "bounds",
  548.                 pBounds,
  549.                 cQDRectangle,
  550.                 "the boundary rectangle for the window",
  551.                 reserved,
  552.                 singleItem,
  553.                 notEnumerated,
  554.                 readWrite,
  555.                 reserved, reserved, reserved, reserved,
  556.                 reserved, reserved, reserved, reserved,
  557.                 reserved,
  558.                 reserved,
  559.                 reserved,
  560.                 singlular,
  561.                 /* [3] */
  562.                 "class",
  563.                 pClass,
  564.                 cType,
  565.                 "the class",
  566.                 reserved,
  567.                 singleItem,
  568.                 notEnumerated,
  569.                 readOnly,
  570.                 reserved, reserved, reserved, reserved,
  571.                 reserved, reserved, reserved, reserved,
  572.                 reserved,
  573.                 reserved,
  574.                 reserved,
  575.                 singlular,
  576.                 /* [4] */
  577.                 "closeable",
  578.                 pHasCloseBox,
  579.                 cBoolean,
  580.                 "Does the window have a close box?",
  581.                 reserved,
  582.                 singleItem,
  583.                 notEnumerated,
  584.                 readOnly,
  585.                 reserved, reserved, reserved, reserved,
  586.                 reserved, reserved, reserved, reserved,
  587.                 reserved,
  588.                 reserved,
  589.                 reserved,
  590.                 singlular,
  591.                 /* [5] */
  592.                 "default type",
  593.                 pDefaultType,
  594.                 cType,
  595.                 "the default descriptor type",
  596.                 reserved,
  597.                 singleItem,
  598.                 notEnumerated,
  599.                 readOnly,
  600.                 reserved, reserved, reserved, reserved,
  601.                 reserved, reserved, reserved, reserved,
  602.                 reserved,
  603.                 reserved,
  604.                 reserved,
  605.                 singlular,
  606.                 /* [6] */
  607.                 "floating",
  608.                 pIsFloating,
  609.                 cBoolean,
  610.                 "Does the window float?",
  611.                 reserved,
  612.                 singleItem,
  613.                 notEnumerated,
  614.                 readOnly,
  615.                 reserved, reserved, reserved, reserved,
  616.                 reserved, reserved, reserved, reserved,
  617.                 reserved,
  618.                 reserved,
  619.                 reserved,
  620.                 singlular,
  621.                 /* [7] */
  622.                 "index",
  623.                 pIndex,
  624.                 cLongInteger,
  625.                 "the number of the window",
  626.                 reserved,
  627.                 singleItem,
  628.                 notEnumerated,
  629.                 readWrite,
  630.                 reserved, reserved, reserved, reserved,
  631.                 reserved, reserved, reserved, reserved,
  632.                 reserved,
  633.                 reserved,
  634.                 reserved,
  635.                 singlular,
  636.                 /* [8] */
  637.                 "modal",
  638.                 pIsModal,
  639.                 cBoolean,
  640.                 "Is the window modal?",
  641.                 reserved,
  642.                 singleItem,
  643.                 notEnumerated,
  644.                 readOnly,
  645.                 reserved, reserved, reserved, reserved,
  646.                 reserved, reserved, reserved, reserved,
  647.                 reserved,
  648.                 reserved,
  649.                 reserved,
  650.                 singlular,
  651.                 /* [9] */
  652.                 "name",
  653.                 pName,
  654.                 cIntlText,
  655.                 "the title of the window",
  656.                 reserved,
  657.                 singleItem,
  658.                 notEnumerated,
  659.                 readWrite,
  660.                 reserved, reserved, reserved, reserved,
  661.                 reserved, reserved, reserved, reserved,
  662.                 reserved,
  663.                 reserved,
  664.                 reserved,
  665.                 singlular,
  666.                 /* [10] */
  667.                 "resizable",
  668.                 pIsResizable,
  669.                 cBoolean,
  670.                 "Is the window resizable?",
  671.                 reserved,
  672.                 singleItem,
  673.                 notEnumerated,
  674.                 readOnly,
  675.                 reserved, reserved, reserved, reserved,
  676.                 reserved, reserved, reserved, reserved,
  677.                 reserved,
  678.                 reserved,
  679.                 reserved,
  680.                 singlular,
  681.                 /* [11] */
  682.                 "selection",
  683.                 pSelection,
  684.                 cSelection,
  685.                 "the selection visible to the user",
  686.                 reserved,
  687.                 singleItem,
  688.                 notEnumerated,
  689.                 readWrite,
  690.                 reserved, reserved, reserved, reserved,
  691.                 reserved, reserved, reserved, reserved,
  692.                 reserved,
  693.                 reserved,
  694.                 reserved,
  695.                 singlular,
  696.                 /* [12] */
  697.                 "titled",
  698.                 pHasTitleBar,
  699.                 cBoolean,
  700.                 "Does the window have a title bar?",
  701.                 reserved,
  702.                 singleItem,
  703.                 notEnumerated,
  704.                 readOnly,
  705.                 reserved, reserved, reserved, reserved,
  706.                 reserved, reserved, reserved, reserved,
  707.                 reserved,
  708.                 reserved,
  709.                 reserved,
  710.                 singlular,
  711.                 /* [13] */
  712.                 "visible",
  713.                 pVisible,
  714.                 cBoolean,
  715.                 "Is the window visible?",
  716.                 reserved,
  717.                 singleItem,
  718.                 notEnumerated,
  719.                 readWrite,
  720.                 reserved, reserved, reserved, reserved,
  721.                 reserved, reserved, reserved, reserved,
  722.                 reserved,
  723.                 reserved,
  724.                 reserved,
  725.                 singlular,
  726.                 /* [14] */
  727.                 "zoomable",
  728.                 pIsZoomable,
  729.                 cBoolean,
  730.                 "Is the window zoomable?",
  731.                 reserved,
  732.                 singleItem,
  733.                 notEnumerated,
  734.                 readOnly,
  735.                 reserved, reserved, reserved, reserved,
  736.                 reserved, reserved, reserved, reserved,
  737.                 reserved,
  738.                 reserved,
  739.                 reserved,
  740.                 singlular,
  741.                 /* [15] */
  742.                 "zoomed",
  743.                 pIsZoomed,
  744.                 cBoolean,
  745.                 "Is the window zoomed?",
  746.                 reserved,
  747.                 singleItem,
  748.                 notEnumerated,
  749.                 readWrite,
  750.                 reserved, reserved, reserved, reserved,
  751.                 reserved, reserved, reserved, reserved,
  752.                 reserved,
  753.                 reserved,
  754.                 reserved,
  755.                 singlular,
  756.             },
  757.             {    /* array Elements: 1 elements */
  758.                 /* [1] */
  759.                 cButton,
  760.                 {    /* array KeyForms: 2 elements */
  761.                     /* [1] */
  762.                     formAbsolutePosition,
  763.                     /* [2] */
  764.                     formName
  765.                 },
  766.                 /* [1] */
  767.                 cTextField,
  768.                 {    /* array KeyForms: 2 elements */
  769.                     /* [1] */
  770.                     formAbsolutePosition,
  771.                     /* [2] */
  772.                     formName
  773.                 }
  774.             },
  775.             "windows",
  776.             cWindow,
  777.             "Every window",
  778.             {    /* array Properties: 1 elements */
  779.                 /* [1] */
  780.                 "",
  781.                 kAESpecialClassProperties,
  782.                 cType,
  783.                 "",
  784.                 reserved,
  785.                 singleItem,
  786.                 notEnumerated,
  787.                 readOnly,
  788.                 reserved, reserved, reserved, reserved,
  789.                 reserved, reserved, reserved, reserved,
  790.                 reserved,
  791.                 reserved,
  792.                 reserved,
  793.                 plural
  794.             },
  795.             {    /* array Elements: 0 elements */
  796.             },
  797.             /* [4] */
  798.             "button",
  799.             cButton,
  800.             "A button for clicking on",
  801.             {    /* array Properties: 5 elements */
  802.                 /* [1] */
  803.                 "script",
  804.                 pScript,
  805.                 cScript,
  806.                 "the script",
  807.                 reserved,
  808.                 singleItem,
  809.                 notEnumerated,
  810.                 readWrite,
  811.                 reserved, reserved, reserved, reserved,
  812.                 reserved, reserved, reserved, reserved, reserved,
  813.                 notFeminine,
  814.                 notMasculine,
  815.                 singlular,
  816.                 /* [1] */
  817.                 "kind",
  818.                 pButtonKind,
  819.                 enumButtonKind,
  820.                 "the kind of button",
  821.                 reserved,
  822.                 singleItem,
  823.                 enumerated,
  824.                 readWrite,
  825.                 reserved, reserved, reserved, reserved,
  826.                 reserved, reserved, reserved, reserved, reserved,
  827.                 notFeminine,
  828.                 notMasculine,
  829.                 singlular,
  830.                 /* [1] */
  831.                 "best type",
  832.                 pBestType,
  833.                 cType,
  834.                 "the best descriptor type",
  835.                 reserved,
  836.                 singleItem,
  837.                 notEnumerated,
  838.                 readOnly,
  839.                 reserved, reserved, reserved, reserved,
  840.                 reserved, reserved, reserved, reserved,
  841.                 reserved,
  842.                 reserved,
  843.                 reserved,
  844.                 singlular,
  845.                 /* [2] */
  846.                 "bounds",
  847.                 pBounds,
  848.                 cQDRectangle,
  849.                 "the smallest rectangle that contains the entire graphic object",
  850.                 reserved,
  851.                 singleItem,
  852.                 notEnumerated,
  853.                 readWrite,
  854.                 reserved, reserved, reserved, reserved,
  855.                 reserved, reserved, reserved, reserved,
  856.                 reserved,
  857.                 reserved,
  858.                 reserved,
  859.                 singlular,
  860.                 /* [3] */
  861.                 "class",
  862.                 pClass,
  863.                 cType,
  864.                 "the class",
  865.                 reserved,
  866.                 singleItem,
  867.                 notEnumerated,
  868.                 readOnly,
  869.                 reserved, reserved, reserved, reserved,
  870.                 reserved, reserved, reserved, reserved,
  871.                 reserved,
  872.                 reserved,
  873.                 reserved,
  874.                 singlular,
  875.                 /* [4] */
  876.                 "default type",
  877.                 pDefaultType,
  878.                 cType,
  879.                 "the default descriptor type",
  880.                 reserved,
  881.                 singleItem,
  882.                 notEnumerated,
  883.                 readOnly,
  884.                 reserved, reserved, reserved, reserved,
  885.                 reserved, reserved, reserved, reserved,
  886.                 reserved,
  887.                 reserved,
  888.                 reserved,
  889.                 singlular,
  890.                 /* [9] */
  891.                 "name",
  892.                 pName,
  893.                 cIntlText,
  894.                 "the title of the control",
  895.                 reserved,
  896.                 singleItem,
  897.                 notEnumerated,
  898.                 readWrite,
  899.                 reserved, reserved, reserved, reserved,
  900.                 reserved, reserved, reserved, reserved,
  901.                 reserved,
  902.                 reserved,
  903.                 reserved,
  904.                 singlular,
  905.                 /* [5] */
  906.                 "color",
  907.                 pColor,
  908.                 cRGBColor,
  909.                 "the color of the title",
  910.                 reserved,
  911.                 singleItem,
  912.                 notEnumerated,
  913.                 readWrite,
  914.                 reserved, reserved, reserved, reserved,
  915.                 reserved, reserved, reserved, reserved,
  916.                 reserved,
  917.                 reserved,
  918.                 reserved,
  919.                 singlular,
  920.                 /* [7] */
  921.                 "font",
  922.                 pFont,
  923.                 cText,
  924.                 "the name of the font of the title",
  925.                 reserved,
  926.                 singleItem,
  927.                 notEnumerated,
  928.                 readWrite,
  929.                 reserved, reserved, reserved, reserved,
  930.                 reserved, reserved, reserved, reserved,
  931.                 reserved,
  932.                 reserved,
  933.                 reserved,
  934.                 singlular,
  935.                 /* [8] */
  936.                 "size",
  937.                 pPointSize,
  938.                 cFixed,
  939.                 "the size in points of the title",
  940.                 reserved,
  941.                 singleItem,
  942.                 notEnumerated,
  943.                 readWrite,
  944.                 reserved, reserved, reserved, reserved,
  945.                 reserved, reserved, reserved, reserved,
  946.                 reserved,
  947.                 reserved,
  948.                 reserved,
  949.                 singlular,
  950.                 /* [10] */
  951.                 "style",
  952.                 pTextStyles,
  953.                 cTextStyles,
  954.                 "the text style of the title",
  955.                 reserved,
  956.                 singleItem,
  957.                 notEnumerated,
  958.                 readWrite,
  959.                 reserved, reserved, reserved, reserved,
  960.                 reserved, reserved, reserved, reserved,
  961.                 reserved,
  962.                 reserved,
  963.                 reserved,
  964.                 singlular,
  965.             },
  966.             {    /* array Elements: 0 elements */
  967.             },
  968.             "buttons",
  969.             cButton,
  970.             "Every button",
  971.             {    /* array Properties: 1 elements */
  972.                 /* [1] */
  973.                 "",
  974.                 kAESpecialClassProperties,
  975.                 cType,
  976.                 "",
  977.                 reserved,
  978.                 singleItem,
  979.                 notEnumerated,
  980.                 readOnly,
  981.                 reserved, reserved, reserved, reserved,
  982.                 reserved, reserved, reserved, reserved,
  983.                 reserved,
  984.                 reserved,
  985.                 reserved,
  986.                 plural
  987.             },
  988.             {    /* array Elements: 0 elements */
  989.             },
  990.             /* [4] */
  991.             "text field",
  992.             cTextField,
  993.             "A text field",
  994.             {    /* array Properties: 5 elements */
  995.                 /* [1] */
  996.                 "script",
  997.                 pScript,
  998.                 cScript,
  999.                 "the script",
  1000.                 reserved,
  1001.                 singleItem,
  1002.                 notEnumerated,
  1003.                 readWrite,
  1004.                 reserved, reserved, reserved, reserved,
  1005.                 reserved, reserved, reserved, reserved, reserved,
  1006.                 notFeminine,
  1007.                 notMasculine,
  1008.                 singlular,
  1009.                 /* [1] */
  1010.                 "best type",
  1011.                 pBestType,
  1012.                 cType,
  1013.                 "the best descriptor type",
  1014.                 reserved,
  1015.                 singleItem,
  1016.                 notEnumerated,
  1017.                 readOnly,
  1018.                 reserved, reserved, reserved, reserved,
  1019.                 reserved, reserved, reserved, reserved,
  1020.                 reserved,
  1021.                 reserved,
  1022.                 reserved,
  1023.                 singlular,
  1024.                 /* [2] */
  1025.                 "bounds",
  1026.                 pBounds,
  1027.                 cQDRectangle,
  1028.                 "the smallest rectangle that contains the entire graphic object",
  1029.                 reserved,
  1030.                 singleItem,
  1031.                 notEnumerated,
  1032.                 readWrite,
  1033.                 reserved, reserved, reserved, reserved,
  1034.                 reserved, reserved, reserved, reserved,
  1035.                 reserved,
  1036.                 reserved,
  1037.                 reserved,
  1038.                 singlular,
  1039.                 /* [3] */
  1040.                 "class",
  1041.                 pClass,
  1042.                 cType,
  1043.                 "the class",
  1044.                 reserved,
  1045.                 singleItem,
  1046.                 notEnumerated,
  1047.                 readOnly,
  1048.                 reserved, reserved, reserved, reserved,
  1049.                 reserved, reserved, reserved, reserved,
  1050.                 reserved,
  1051.                 reserved,
  1052.                 reserved,
  1053.                 singlular,
  1054.                 /* [4] */
  1055.                 "default type",
  1056.                 pDefaultType,
  1057.                 cType,
  1058.                 "the default descriptor type",
  1059.                 reserved,
  1060.                 singleItem,
  1061.                 notEnumerated,
  1062.                 readOnly,
  1063.                 reserved, reserved, reserved, reserved,
  1064.                 reserved, reserved, reserved, reserved,
  1065.                 reserved,
  1066.                 reserved,
  1067.                 reserved,
  1068.                 singlular,
  1069.                 /* [9] */
  1070.                 "name",
  1071.                 pName,
  1072.                 cIntlText,
  1073.                 "the name of the field",
  1074.                 reserved,
  1075.                 singleItem,
  1076.                 notEnumerated,
  1077.                 readWrite,
  1078.                 reserved, reserved, reserved, reserved,
  1079.                 reserved, reserved, reserved, reserved,
  1080.                 reserved,
  1081.                 reserved,
  1082.                 reserved,
  1083.                 singlular,
  1084.                 /* [9] */
  1085.                 "contents",
  1086.                 pContents,
  1087.                 cIntlText,
  1088.                 "the contents of the field",
  1089.                 reserved,
  1090.                 singleItem,
  1091.                 notEnumerated,
  1092.                 readWrite,
  1093.                 reserved, reserved, reserved, reserved,
  1094.                 reserved, reserved, reserved, reserved,
  1095.                 reserved,
  1096.                 reserved,
  1097.                 reserved,
  1098.                 singlular,
  1099.                 /* [5] */
  1100.                 "color",
  1101.                 pColor,
  1102.                 cRGBColor,
  1103.                 "the color of the text",
  1104.                 reserved,
  1105.                 singleItem,
  1106.                 notEnumerated,
  1107.                 readWrite,
  1108.                 reserved, reserved, reserved, reserved,
  1109.                 reserved, reserved, reserved, reserved,
  1110.                 reserved,
  1111.                 reserved,
  1112.                 reserved,
  1113.                 singlular,
  1114.                 /* [7] */
  1115.                 "font",
  1116.                 pFont,
  1117.                 cText,
  1118.                 "the name of the font of the text",
  1119.                 reserved,
  1120.                 singleItem,
  1121.                 notEnumerated,
  1122.                 readWrite,
  1123.                 reserved, reserved, reserved, reserved,
  1124.                 reserved, reserved, reserved, reserved,
  1125.                 reserved,
  1126.                 reserved,
  1127.                 reserved,
  1128.                 singlular,
  1129.                 /* [8] */
  1130.                 "size",
  1131.                 pPointSize,
  1132.                 cFixed,
  1133.                 "the size in points of the text",
  1134.                 reserved,
  1135.                 singleItem,
  1136.                 notEnumerated,
  1137.                 readWrite,
  1138.                 reserved, reserved, reserved, reserved,
  1139.                 reserved, reserved, reserved, reserved,
  1140.                 reserved,
  1141.                 reserved,
  1142.                 reserved,
  1143.                 singlular,
  1144.                 /* [10] */
  1145.                 "style",
  1146.                 pTextStyles,
  1147.                 cTextStyles,
  1148.                 "the style of the text",
  1149.                 reserved,
  1150.                 singleItem,
  1151.                 notEnumerated,
  1152.                 readWrite,
  1153.                 reserved, reserved, reserved, reserved,
  1154.                 reserved, reserved, reserved, reserved,
  1155.                 reserved,
  1156.                 reserved,
  1157.                 reserved,
  1158.                 singlular,
  1159.                 /* [10] */
  1160.                 "editable",
  1161.                 pEditable,
  1162.                 cBoolean,
  1163.                 "is the text editable?",
  1164.                 reserved,
  1165.                 singleItem,
  1166.                 notEnumerated,
  1167.                 readWrite,
  1168.                 reserved, reserved, reserved, reserved,
  1169.                 reserved, reserved, reserved, reserved,
  1170.                 reserved,
  1171.                 reserved,
  1172.                 reserved,
  1173.                 singlular,
  1174.             },
  1175.             {    /* array Elements: 0 elements */
  1176.             },
  1177.             "text fields",
  1178.             cTextField,
  1179.             "Every text field",
  1180.             {    /* array Properties: 1 elements */
  1181.                 /* [1] */
  1182.                 "",
  1183.                 kAESpecialClassProperties,
  1184.                 cType,
  1185.                 "",
  1186.                 reserved,
  1187.                 singleItem,
  1188.                 notEnumerated,
  1189.                 readOnly,
  1190.                 reserved, reserved, reserved, reserved,
  1191.                 reserved, reserved, reserved, reserved,
  1192.                 reserved,
  1193.                 reserved,
  1194.                 reserved,
  1195.                 plural
  1196.             },
  1197.             {    /* array Elements: 0 elements */
  1198.             },
  1199.         },
  1200.         {    /* array ComparisonOps: 8 elements */
  1201.             /* [1] */
  1202.             "starts with",
  1203.             kAEBeginsWith,
  1204.             "Starts with",
  1205.             /* [2] */
  1206.             "contains",
  1207.             kAEContains,
  1208.             "Contains",
  1209.             /* [3] */
  1210.             "ends with",
  1211.             kAEEndsWith,
  1212.             "Ends with",
  1213.             /* [4] */
  1214.             "=",
  1215.             kAEEquals,
  1216.             "Equal",
  1217.             /* [5] */
  1218.             ">",
  1219.             kAEGreaterThan,
  1220.             "Greater than",
  1221.             /* [6] */
  1222.             "≥",
  1223.             kAEGreaterThanEquals,
  1224.             "Greater than or equal to",
  1225.             /* [7] */
  1226.             "<",
  1227.             kAELessThan,
  1228.             "Less than",
  1229.             /* [8] */
  1230.             "≤",
  1231.             kAELessThanEquals,
  1232.             "Less than or equal to",
  1233.         },
  1234.         {    /* array Enumerations: 4 elements */
  1235.             /* [1] */
  1236.             enumSaveOptions,
  1237.             {    /* array Enumerators: 3 elements */
  1238.                 /* [1] */
  1239.                 "yes",
  1240.                 kAEYes,
  1241.                 "Save objects now",
  1242.                 /* [2] */
  1243.                 "no",
  1244.                 kAENo ,
  1245.                 "Do not save objects",
  1246.                 /* [3] */
  1247.                 "ask",
  1248.                 kAEAsk ,
  1249.                 "Ask the user whether to save",
  1250.             },
  1251.             /* [3] */    
  1252.             enumKeyForm,
  1253.             {    /* array Enumerators: 3 elements */
  1254.                 /* [1] */
  1255.                 "index",
  1256.                 formAbsolutePosition,
  1257.                 "keyform designating indexed access",
  1258.                 /* [2] */
  1259.                 "named",
  1260.                 formName,
  1261.                 "keyform designating named access",
  1262.                 /* [3] */
  1263.                 "id",
  1264.                 formUniqueID,
  1265.                 "keyform designating identifer access"
  1266.             },
  1267.             enumStyle,
  1268.             {    /* array Enumerators: 4 elements */
  1269.                 /* [1] */
  1270.                 "plain",
  1271.                 kAEPlain,
  1272.                 "Plain",
  1273.                 /* [2] */
  1274.                 "bold",
  1275.                 kAEBold,
  1276.                 "Bold",
  1277.                 /* [3] */
  1278.                 "italic",
  1279.                 kAEItalic,
  1280.                 "Italic",
  1281.                 /* [4] */
  1282.                 "outline",
  1283.                 kAEOutline,
  1284.                 "Outline",
  1285.                 /* [5] */
  1286.                 "shadow",
  1287.                 kAEShadow,
  1288.                 "Shadow",
  1289.                 /* [6] */
  1290.                 "underline",
  1291.                 kAEUnderline,
  1292.                 "Underline",
  1293.                 /* [7] */
  1294.                 "superscript",
  1295.                 kAESuperscript,
  1296.                 "Superscript",
  1297.                 /* [8] */
  1298.                 "subscript",
  1299.                 kAESubscript,
  1300.                 "Subscript",
  1301.                 /* [9] */
  1302.                 "strikethrough",
  1303.                 kAEStrikethrough,
  1304.                 "Strikethrough",
  1305.                 /* [10] */
  1306.                 "small Caps",
  1307.                 kAESmallCaps,
  1308.                 "Small Caps",
  1309.                 /* [11] */
  1310.                 "all caps ",
  1311.                 kAEAllCaps ,
  1312.                 "All Caps ",
  1313.                 /* [12] */
  1314.                 "all lowercase",
  1315.                 kAELowercase,
  1316.                 "Lowercase",
  1317.                 /* [13] */
  1318.                 "condensed",
  1319.                 kAECondensed,
  1320.                 "Condensed",
  1321.                 /* [14] */
  1322.                 "expanded",
  1323.                 kAEExpanded,
  1324.                 "Expanded",
  1325.                 /* [15] */
  1326.                 "hidden",
  1327.                 kAEHidden,
  1328.                 "Hidden",
  1329.             },
  1330.             /* [4] */
  1331.             enumEventKind,
  1332.             {    /* array Enumerators: 3 elements */
  1333.                 /* [1] */
  1334.                 "menu event",
  1335.                 kAEMenuEvent,
  1336.                 "menu item chosen",
  1337.                 /* [2] */
  1338.                 "key event",
  1339.                 kAEKeyEvent,
  1340.                 "key pressed",
  1341.                 /* [3] */
  1342.                 "mouse event",
  1343.                 kAEMouseEvent,
  1344.                 "mouse clicked",
  1345.             },
  1346.             /* [4] */
  1347.             enumButtonKind,
  1348.             {    /* array Enumerators: 3 elements */
  1349.                 /* [1] */
  1350.                 "standard",
  1351.                 kAEBtnStandard,
  1352.                 "standard round-cornered button",
  1353.                 /* [2] */
  1354.                 "checkbox",
  1355.                 kAEBtnCheckbox,
  1356.                 "check-box button",
  1357.                 /* [3] */
  1358.                 "radio",
  1359.                 kAEBtnRadio,
  1360.                 "radio button",
  1361.             },
  1362.         },
  1363.     }
  1364. };
  1365.  
  1366.  
  1367.  
  1368. type kSignature as 'STR ';
  1369.  
  1370.  
  1371. resource kSignature (0) {
  1372.     " SimpliFace Application"
  1373. };
  1374.  
  1375.  
  1376. resource 'BNDL' (128) {
  1377.     kSignature,
  1378.     0,
  1379.     {
  1380.         'ICN#',
  1381.         {
  1382.             0,     128
  1383.         },
  1384.         'FREF',
  1385.         {
  1386.             0,     128
  1387.         }
  1388.     }
  1389. };
  1390.  
  1391.  
  1392. resource 'FREF' (128) {
  1393.     'APPL',
  1394.     0,
  1395.     ""
  1396. };
  1397.  
  1398.  
  1399. //--------------------------------------------------------------------------------------------------
  1400. // Icons
  1401. //--------------------------------------------------------------------------------------------------
  1402. include "SimpliFace_Icon.rsrc";
  1403.  
  1404.  
  1405. resource 'STR#' (kSimpliFaceBuzzwords, purgeable) {
  1406.     {
  1407.     "SimpliFace",
  1408.     "SimpliFace Global Variables",
  1409.     "SimpliFace Startup"
  1410.     }
  1411. };
  1412.  
  1413.  
  1414. resource 'STR#' (kSimpliFaceErrStrings, purgeable) {
  1415.     {
  1416.     "Can't do it"
  1417.     }
  1418. };
  1419.  
  1420.  
  1421. /* we use an MBAR resource to conveniently load all the menus */
  1422.  
  1423. resource 'MBAR' (rMenuBar) {
  1424.     { mApple, mFile, mEdit };
  1425. };
  1426.  
  1427. resource 'MENU' (mApple) {
  1428.     mApple, textMenuProc,
  1429.     0b1111111111111111111111111111101,    /* disable dashed line, enable About and DAs */
  1430.     enabled, apple,
  1431.     {
  1432.         "About SimpliFace…",
  1433.             noicon, nokey, nomark, plain;
  1434.         "-",
  1435.             noicon, nokey, nomark, plain
  1436.     }
  1437. };
  1438.  
  1439. resource 'MENU' (mFile) {
  1440.     mFile, textMenuProc,
  1441.     0b0000000000000000000000000000010,    /* enable Quit only, program enables others */
  1442.     enabled, "File",
  1443.     {
  1444.         "Close",
  1445.             noicon, "W", nomark, plain;
  1446.         "Quit",
  1447.             noicon, "Q", nomark, plain
  1448.     }
  1449. };
  1450.  
  1451. resource 'MENU' (mEdit) {
  1452.     mEdit, textMenuProc,
  1453.     0b0000000000000000000000000000000,    /* disable everything, program does the enabling */
  1454.     enabled, "Edit",
  1455.      {
  1456.         "Undo",
  1457.             noicon, "Z", nomark, plain;
  1458.         "-",
  1459.             noicon, nokey, nomark, plain;
  1460.         "Cut",
  1461.             noicon, "X", nomark, plain;
  1462.         "Copy",
  1463.             noicon, "C", nomark, plain;
  1464.         "Paste",
  1465.             noicon, "V", nomark, plain;
  1466.         "Clear",
  1467.             noicon, nokey, nomark, plain
  1468.     }
  1469. };
  1470.  
  1471.  
  1472.  
  1473. /* this ALRT and DITL are used as an error screen */
  1474. resource 'ALRT' (rUserAlert, purgeable) {
  1475.     {40, 20, 180, 330},
  1476.     rUserAlert,
  1477.     { /* array: 4 elements */
  1478.         /* [1] */
  1479.         OK, visible, silent,
  1480.         /* [2] */
  1481.         OK, visible, silent,
  1482.         /* [3] */
  1483.         OK, visible, silent,
  1484.         /* [4] */
  1485.         OK, visible, silent
  1486.     }
  1487. };
  1488.  
  1489. resource 'DITL' (rUserAlert, purgeable) {
  1490.     { /* array DITLarray: 3 elements */
  1491.         /* [1] */
  1492.         {110, 220, 130, 300},
  1493.         Button {
  1494.             enabled,
  1495.             "OK"
  1496.         },
  1497.         /* [2] */
  1498.         {10, 60, 90, 300},
  1499.         StaticText {
  1500.             disabled,
  1501.             "Error. ^0."
  1502.         },
  1503.         /* [3] */
  1504.         {8, 8, 40, 40},
  1505.         Icon {
  1506.             disabled,
  1507.             2
  1508.         }
  1509.     }
  1510. };
  1511.  
  1512.  
  1513. /* this ALRT and DITL are used as an About screen */
  1514.  
  1515. resource 'ALRT' (rAboutAlert, purgeable) {
  1516.     {40, 20, 160, 330 }, rAboutAlert, {
  1517.         OK, visible, silent;
  1518.         OK, visible, silent;
  1519.         OK, visible, silent;
  1520.         OK, visible, silent
  1521.     };
  1522. };
  1523.  
  1524. resource 'DITL' (rAboutAlert, purgeable) {
  1525.     { /* array DITLarray: 5 elements */
  1526.         /* [1] */
  1527.         {88, 224, 108, 304},
  1528.         Button {
  1529.             enabled,
  1530.             "OK"
  1531.         },
  1532.         /* [2] */
  1533.         {8, 8, 24, 304 },
  1534.         StaticText {
  1535.             disabled,
  1536.             "SimpliFace Application"
  1537.         },
  1538.         /* [3] */
  1539.         {32, 8, 48, 237},
  1540.         StaticText {
  1541.             disabled,
  1542.             "sample code for 'develop' magazine"
  1543.         },
  1544.         /* [4] */
  1545.         {56, 8, 72, 220},
  1546.         StaticText {
  1547.             disabled,
  1548.             "Written by: Paul G Smith"
  1549.         },
  1550.         /* [5] */
  1551.         {80, 24, 112, 220},
  1552.         StaticText {
  1553.             disabled,
  1554.             "AppleLink: SMITH.PG"
  1555.         }
  1556.     }
  1557. };
  1558.